// =================================================================
// File: commands.h
// Desc: Contains prototypes for functions to be called from console
//       and its helper functions
// =================================================================

#ifndef COMMANDS_H
#define COMMANDS_H

// =================================================================
// INCLUDES
// =================================================================

#include "FSManager.h"
#include "Inode.h"

// =================================================================
// PROTOTYPES
// =================================================================

void mkfs(FSManager *fsm); //Makes new file system
int open(string path, string str_mode, FSManager *fsm);
void close(int fd, FSManager *fsm);
int write(int fd,string data, FSManager *fsm);
string read(int fd, int bytesToRead, FSManager *fsm);
int seek(int fd, int offset, FSManager *fsm);
int cat(string filename, FSManager *fsm);
void ls(FSManager *fsm);
void tree(FSManager *tree);
void mkdir(string dir_name, FSManager *fsm);
void rmdir(string dir_name, FSManager *fsm);
void link(string src_path, string dest_path, FSManager *fsm);
void unlink(string path, FSManager *fsm);
void cd(string dir_name, FSManager *fsm);
void stat(string path, FSManager *fsm);
int cp(string src_path, string dest_path, FSManager *fsm);
void import(string src_path, string dest_path, FSManager *fsm);
void Export(string src_path, string dest_path, FSManager *fsm);
void parse(string command, FSManager *fsm);
void delete_blocks(Inode *node, FSManager *fms);

#endif
